// 初始化空调控制功能
$(document).ready(function() {
    console.log("页面加载完成，开始初始化空调控制");
    
    // 检查必要函数是否存在
    if (typeof showFormModal !== 'function') {
        console.error("showFormModal函数未定义！");
        alert("页面功能加载不完整，请刷新页面重试");
        return;
    }
    
    // 初始化所有空调卡片
    initAirConditioners();

    // 模式按钮点击事件
    $('.mode-btn').on('click', function() {
        const card = $(this).closest('.air-conditioner-card');
        const cardId = card.data('id');
        const mode = $(this).data('mode');
        
        // 移除所有模式按钮的活跃状态
        card.find('.mode-btn').removeClass('active');
        
        // 设置当前模式按钮为活跃状态
        $(this).addClass('active');
        
        // 更新模式显示
        let modeName = '自动模式';
        if (mode === 'cooling') {
            modeName = '制冷模式';
        } else if (mode === 'dehumidify') {
            modeName = '除湿模式';
        }
        
        // 更新UI显示
        card.find('.mode-value[data-mode]').text(modeName).attr('data-mode', mode);
        
        // 更新系统状态显示
        updateSystemStatus(card);
        
        // 显示提示
        showToast(`${cardId}#空调模式已切换为${modeName}`, 'info');
    });
    
    // 电源按钮点击事件
    $('.power-btn').on('click', function() {
        const card = $(this).closest('.air-conditioner-card');
        const cardId = card.data('id');
        const currentStatus = $(this).data('status');
        
        if (currentStatus === 'off') {
            // 开机
            $(this).data('status', 'on').text('关闭');
            $(this).addClass('active');
            showToast(`${cardId}#空调已开机`, 'success');
        } else {
            // 关机
            $(this).data('status', 'off').text('开启');
            $(this).removeClass('active');
            showToast(`${cardId}#空调已关机`, 'info');
        }
        
        // 更新系统状态显示
        updateSystemStatus(card);
    });
    
    // 定期模拟数据更新
    setInterval(mockDataUpdate, 30000);

    console.log("空调控制初始化完成");
});

// 初始化所有空调卡片，并在初始化时直接绑定事件
function initAirConditioners() {
    $('.air-conditioner-card').each(function() {
        const card = $(this);
        const cardId = card.data('id');
        
        // 默认设置自动模式为活跃状态
        card.find('.mode-btn[data-mode="auto"]').addClass('active');
        
        // 更新系统状态显示
        updateSystemStatus(card);
        
        // 随机设置初始室内温度 (22-28度之间)
        const randomTemp = Math.floor(Math.random() * 7) + 22;
        card.find('.current-temp').text(randomTemp);

        // 在初始化时，就为目标温度区域绑定点击事件
        card.find('.temperature-info').each(function() {
            if ($(this).find('.temperature-label').text().includes('目标温度')) {
                console.log("目标温度被点击");
                $(this).find('.temperature-value').on('click', function() {
                    console.log("目标温度被点击22");
                    const targetTempSpan = $(this).find('.target-temp');
                    const currentTemp = targetTempSpan.text();

                    console.log(`卡片 #${cardId} 的目标温度被点击。当前值: ${currentTemp}`);

                    showFormModal({
                        title: `设置 ${cardId}# 空调目标温度`,
                        fields: [
                            {
                                name: 'targetTemp',
                                label: '目标温度 (10-35℃)',
                                type: 'number',
                                value: currentTemp,
                                required: true,
                            }
                        ],
                        submitText: '确定',
                        cancelText: '取消',
                        onSubmit: function(formData) {
                            let newTemp = parseInt(formData.targetTemp);
                            if (!isNaN(newTemp)) {
                                if (newTemp > 35) {
                                    newTemp = 35;
                                    showToast('温度最高只能设置为35℃', 'warning');
                                } else if (newTemp < 10) {
                                    newTemp = 10;
                                    showToast('温度最低只能设置为10℃', 'warning');
                                }
                                targetTempSpan.text(newTemp);
                                showToast(`${cardId}# 空调目标温度已设置为 ${newTemp}℃`, 'success');
                            }
                            closeModal();
                        }
                    });
                });
            }
        });
    });
}

// 更新系统状态显示
function updateSystemStatus(card) {
    const isPowerOn = card.find('.power-btn').data('status') === 'on';
    const currentMode = card.find('.mode-value[data-mode]').attr('data-mode');
    
    let modeName = '自动模式';
    if (currentMode === 'cooling') {
        modeName = '制冷模式';
    } else if (currentMode === 'dehumidify') {
        modeName = '除湿模式';
    }
    
    card.find('.system-status').text(isPowerOn ? '开机' : '关机');
    
    // 更新卡片状态样式
    if (isPowerOn) {
        card.find('.device-status')
            .removeClass('status-normal')
            .addClass('status-normal')
            .text('状态: 运行中');
    } else {
        card.find('.device-status')
            .removeClass('status-normal')
            .addClass('status-normal')
            .text('状态: 正常');
    }
}

// 模拟数据更新
function mockDataUpdate() {
    // 随机选择一个空调进行状态更新
    const totalCards = $('.air-conditioner-card').length;
    const randomIndex = Math.floor(Math.random() * totalCards);
    const randomCard = $('.air-conditioner-card').eq(randomIndex);
    
    // 更新室内温度（随机波动）
    const currentTemp = parseFloat(randomCard.find('.current-temp').text());
    const randomChange = (Math.random() - 0.5) * 0.5; // -0.25到0.25之间的随机值
    const newTemp = Math.round((currentTemp + randomChange) * 10) / 10;
    
    // 限制温度范围在18-30度之间
    if (newTemp >= 18 && newTemp <= 30) {
        randomCard.find('.current-temp').text(newTemp);
    }
    
    // 每次更新时，在控制台显示日志
    console.log(`空调${randomCard.data('id')}温度更新: ${currentTemp} → ${newTemp}°C`);
}

